// http://www.google.com/codesearch#search&q=u.h+package:http://plan9front\.googlecode\.com

#ifndef __U_H
#define __U_H
#ifndef _PLAN9_SOURCE
#warning  This header file is an extension to ANSI/POSIX
#endif

#define nil             ((void*)0)
typedef unsigned short  ushort;
typedef unsigned char   uchar;
typedef unsigned long   ulong;
typedef unsigned int    uint;
typedef   signed char   schar;
typedef long long       vlong;
typedef unsigned long long uvlong;
typedef ushort          Rune;
typedef         union FPdbleword FPdbleword;
typedef char*   p9va_list;

#endif



#if 0

#define nil             ((void*)0)
typedef unsigned short  ushort;
typedef unsigned char   uchar;
typedef unsigned long   ulong;
typedef unsigned int    uint;
typedef   signed char   schar;
typedef long long       vlong;
typedef unsigned long long uvlong;
typedef unsigned long   uintptr;
typedef unsigned long   usize;
typedef ushort          Rune;
typedef union FPdbleword FPdbleword;
typedef long            jmp_buf[2];
#define JMPBUFSP        0
#define JMPBUFPC        1
#define JMPBUFDPC       0
typedef unsigned int    mpdigit;        /* for /sys/include/mp.h */
typedef unsigned char   u8int;
typedef unsigned short  u16int;
typedef unsigned int    u32int;
typedef unsigned long long u64int;

/* FCR */
#define FPINEX  (1<<5)
#define FPUNFL  ((1<<4)|(1<<1))
#define FPOVFL  (1<<3)
#define FPZDIV  (1<<2)
#define FPINVAL (1<<0)
#define FPRNR   (0<<10)
#define FPRZ    (3<<10)
#define FPRPINF (2<<10)
#define FPRNINF (1<<10)
#define FPRMASK (3<<10)
#define FPPEXT  (3<<8)
#define FPPSGL  (0<<8)
#define FPPDBL  (2<<8)
#define FPPMASK (3<<8)
/* FSR */
#define FPAINEX FPINEX
#define FPAOVFL FPOVFL
#define FPAUNFL FPUNFL
#define FPAZDIV FPZDIV
#define FPAINVAL        FPINVAL
union FPdbleword
{
        double  x;
        struct {        /* little endian */
                ulong lo;
                ulong hi;
        };
};

typedef char*   va_list;
#define va_start(list, start) list =\
        (sizeof(start) < 4?\
                (char*)((int*)&(start)+1):\
                (char*)(&(start)+1))
#define va_end(list)\
        USED(list)
#define va_arg(list, mode)\
        ((sizeof(mode) == 1)?\
                ((list += 4), (mode*)list)[-4]:\
        (sizeof(mode) == 2)?\
                ((list += 4), (mode*)list)[-2]:\
                ((list += sizeof(mode)), (mode*)list)[-1])

#endif
